#!/bin/sh /etc/rc.common

START=46
STOP=46

start_service() {
	local section="$1"

	. /lib/functions/network.sh

	network_get_physdev LAN lan || return 1
	network_get_physdev WAN wan || return 1
	config_get bridge "$section" bridge

	brctl addbr $bridge
	brctl addif $bridge $LAN
	brctl addif $bridge $WAN
	brctl setfd $bridge 0

	ebtables -t broute -A BROUTING -i $WAN -p ! ipv6 -j DROP
	ifconfig $bridge up
}

stop_service() {
	local section="$1"

	. /lib/functions/network.sh

	network_get_physdev LAN lan || return 1
	network_get_physdev WAN wan || return 1
	config_get bridge "$section" bridge

	ifconfig $bridge down
	ebtables -t broute -F

	brctl delif $bridge $WAN
	brctl delif $bridge $LAN
	brctl delbr $bridge
}

start() {
	if ! [ -f /proc/net/if_inet6 ]; then
		echo "IPv6 not enabled, install kmod-ipv6";
		exit 1
	fi
	config_load "6bridge"
	config_foreach start_service 6bridge
}

stop() {
	config_load "6bridge"
	config_foreach stop_service 6bridge
}
